Testing apparatus for digital storage device

ABSTRACT

An apparatus for testing electro-mechanical storage devices, such as disk drives, is provided. A testing device (14) in a digital computer (10) selects test parameters from an array of test parameters stored in the digital computer (10). A random number generator is used in the selection of the test parameters. When errors occur, the array of test parameters is dynamically adapted during testing to change the probability of selecting certain test parameters in response to the error.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a national stage application filed under 35 U.S.C. §371 based on international application no. PCT/US95/13774 filed Oct. 25,1995.

FIELD OF THE INVENTION

The present invention relates to testing of digital storage devices and,in particular, changing the weighting of an array of test parameters toincrease the probability of errors.

BACKGROUND OF THE INVENTION

Digital storage devices, in particular disk storage devices, aretypically tested through the use of scripted tests which cause thedevice to perform according to predetermined test parameters, commandsequences and command conditions. Errors generated as a result of thetest are normally logged. As it is usually not practical to test allpossible permutations of commands and conditions, scripted testsgenerally contain a set of selected test parameters. As a result, manyinfrequently occurring errors may be overlooked in testing. Scriptedtests have failed to identify a significant number of errors that areexperienced by the end users of the disk storage devices. It would,therefore, be advantageous to cause the testing of the device toidentify errors that a conventional scripted test typically fails toidentify, so that, if possible, the cause of such errors can becorrected before the errors are experienced by end users of the devices.

SUMMARY OF THE INVENTION

In accordance with the present invention, an apparatus is provided fortesting an electro-mechanical digital storage device by providingselected test parameters to the device in a manner that addresses thedeficiencies associated with the use of scripted tests. The apparatusincludes a digital computer, a first interface for transferringinformation between the apparatus and a test operator or another device,an array of test parameters, a device for selecting a test parameterfrom the array and a second interface for transferring information thatis related to the selected test parameter between the apparatus and thedevice under test.

Conventional scripted tests generally use a fixed set of test parametersand follow the same sequence each time the test is run. While this typeof test is useful for testing known problem areas and for establishing areference baseline for multiple tests, it has been found that aconventional scripted test is unlikely to disclose problems which arenot contemplated by the test designer. The structure of the test and theselection of test parameters are often influenced by the experiences orbiases of the person creating the test with respect to the importance ofcertain test parameters and the likelihood of certain error conditions.Furthermore, it has been found that while a scripted test may beeffective for a particular device or device type, subsequent devicechanges and developments may render the test ineffective. In addition,it has been found that when a scripted test is used during thedevelopment of a device to identify and diagnose errors and the deviceis modified to decrease or eliminate errors identified by the test, theoriginal test may not identify new errors which result from themodifications. This problem is of particular importance in the casewhere an individual parameter may not cause an error, but certainsequences of parameters or conditions cause errors.

In diagnosing problems with a storage device, one factor is theexistence of a group of errors which seem to be related. In testing agiven command, repeated errors that are associated with a related groupof command variables indicates that the problem is associated with thevalues of the variables. For example, the execution of a sequence ofread commands that cause information to be read from several closelyassociated locations on the storage medium may result in a number oferrors. However, since most scripted tests do not test every possiblecombination of test parameters, it is unlikely that the scripted testwould identify the group of errors unless the test designer consideredthat command-location combination likely to present a particularproblem.

The present invention addresses these problems by dynamically modifyingthe testing process to adjust to each device being tested to hunt outsuch problem areas. In addition, dynamic adaptation may be used toidentify new problems which may result from changes or modifications ofa device.

In one embodiment of the invention, the initial test parameters arearranged in an array. Test parameters are selected from the array andprovided to the device being tested. When an error event occurs inresponse to the provision of a test parameter, the array of testparameters is modified to increase the probability that the testparameter generating the error will be selected, thus increasing theprobability of an error occurring.

In another embodiment, the test parameters are similarly arranged in anarray. A seed number is provided to a random number generator whichgenerates a series of numbers which is uniquely related to the seednumber. The series of numbers, in conjunction with rules governing thetest environment, is used to select test parameters from the array,which are then provided to the device under test. In contrast to ascripted test where the sequence of test parameters is defined by thescript, the sequence and selection of test parameters used will vary asdifferent seed numbers are used, resulting in a test having increasingscope as more seed numbers are used.

In another embodiment of the invention, information relating to the testconditions is stored in the device under test during testing to providereference diagnostic information concerning errors.

The apparatus permits testing of a broader range of conditions andparameter sequences than conventional scripted tests. As a result, thebreadth and accuracy of the test results is improved. The apparatusavoids limitations imposed by scripted tests through the use of dynamicmodifications and/or the use of random numbers in selecting testparameters and/or sequencing, thus overcoming the drawbacks associatedwith conventional scripted tests.

Based on the foregoing summary, a number of salient features of thepresent invention are readily discerned. The apparatus may adapt thetesting of the device in response to the errors which occur, allowingthe test to focus on potential device faults, even if errors or thepotential fault were not anticipated by the creator of the originaltest. The use of a random number generator in conjunction with a seednumber allows for a specific test sequence to be replicated by use ofthe same seed number, while use of different seed numbers allows forvariation in testing sequence, thus assisting in identifying unsuspectedproblem areas. The use of reference information during testing assistsin the diagnosis of the cause of errors.

Additional advantages of the present invention will become readilyapparent from the following discussion, particularly when taken togetherwith the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an apparatus according to the presentinvention;

FIG. 2 is a chart illustrating dynamic modification of an array of testparameters in response to errors;

FIG. 3 is a graph illustrating changes in probabilities resulting fromsuccessive dynamic modification of an array of test parameters inresponse to errors; and

FIG. 4 is a chart illustrating a change in the weighting of an array oftest parameters in response to an error.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of a digital computer for testing digital datastorage devices, hereinafter digital computer 10. The digital computer10 includes a memory for containing a plurality of test parameters,hereinafter memory 12. The digital computer 10 also includes a testingdevice 14 that selects test parameters from the memory 12, sends theselected test parameters to the storage device being tested or to testenvironment apparatus via an interface device, hereinafter secondinterface 16, and receives error information from the device beingtested via second interface 16. The digital computer 10 also includes auser interface 18 that receives input information relating to the testfrom an operator or another device, and transmits output informationrelating to the test to the operator or other device. In some cases,information relating to the test, such as the sequence of the test andthe frequency of the use of each test parameter may be generated by thetesting device 14 and output to the operator or another device, such asa recording or logging device through user interface 18.

While the present invention may be adapted for use in connection with avariety of electro-mechanical digital storage devices, the descriptionsof the various embodiments which follow generally relate to disk drives.

The test parameters which may be used in the invention cover a broadrange. The test parameters can include a set of commands, commandvariables and test modes (each of which may comprise a group of testparameters or a single parameter) to which the storage device beingtested is responsive. Test parameters can also include parametersrelated to the test environment, such as voltage, temperature, humidity,shock and vibrations. The test parameters can further include anycondition or action that may be controlled by the testing apparatus.

While test parameters are generally communicated from the testingapparatus to the storage device itself, test parameter information mayalso be communicated to other devices. For example, a test parameterrelating to heat might be communicated to a separate device forcontrolling the temperature of the environment in which the storagedevice is being tested.

The test parameters are generally stored in an array, which may becomprised of a group of arrays of different parameters. In oneembodiment of the invention, the testing device 14 uses informationresulting from an error event to adapt the test as the errors occur,thus creating dynamic adaptive tests. The adaptation in response to anerror event allows the apparatus to "learn" from the testing process. Inthis context, "learning" means adaptation to increase the likelihood ofre-creating the error. The adaptation, therefore, is intended toincrease the probability of selecting the test parameters that havepreviously produced an error. The amount of information which is"learned" increases with the number of test iterations and can begathered from a single device or a group of devices. Rather than aprogrammer or operator modifying the test, the sequence of tests isshaped by the device itself and test environment. Dynamic adaptationassists in locating infrequently occurring errors that might otherwisebe overlooked or given low priority for analysis. Since dynamic adaptivetests respond without human intervention, the likelihood of exposingthese errors is increased.

The testing device 14 increases the noted probability by weighting thearray so that the test parameters associated with an error are morelikely to be selected by the testing device 14. Specifically, the arrayor arrays may be weighted to control the probability that a certainparameters or sets of parameters will be used in the course of testing.The weighting of an array may take many forms, and different forms ofweighting may be used simultaneously. One means of weighting an array isby controlling the number of times that a given parameter appears in thearray. If each location in the array has an equal chance of beingselected, as would be the case with random selection, the probabilitythat a given parameter will be selected is proportional to the number oflocations in the array in which that parameter appears. If allparameters in the array have an equal probability of being selected, thearray is equally weighted. Greater weight on a given parameter isequivalent to increased probability of selection of that parameter. Theeffect of weighting an array may also be achieved by logic in theoperation of the test apparatus which causes certain parameters to beselected with greater or lesser frequency than other parameters.

Weighting may vary for particular types of test parameters, or forspecific parameters. For example, an array of commands might be heavilyweighted towards the selection of particular commands while an array ofrelated command variables might be evenly weighted. FIG. 2 illustratesan example of dynamic adaptive testing of a hard disk drive by thedigital computer 10. When an error condition associated with a cylinderof the drive is detected, the array of the test parameters is modifiedto increase the probability of selecting the cylinder that has an errorcondition. In FIG. 2, each numbered column represents a differentiteration of the cylinder number array. The testing device 14 initiallycontains in the memory 12 (column 0) an array of test parameters for thecommand variable "cylinder". The initial iteration of the array, shownin column 0, contains a single number for each cylinder. Consequently,the chance of any given cylinder being selected during the initialiteration is therefore 1 of 1024. Therefore, in this case the initialweighting of cylinder numbers in the array is equally distributed,although other initial weightings may be used if desired. The testingdevice 14 select parameters from the array and provides the parameter tothe second interface 16 which communicates the cylinder number andassociated information to the device being tested.

In the instant example, an error event occurred on cylinder number 9.The testing device 14, after receiving the information associated withthe error event from the storage device under test through the secondinterface 16, causes the cylinder number array to be modified to add anadditional entry for cylinder number 9, as shown in column 1. As aresult, the chance that the error cylinder, number 9, will be selectedis increased to 2 of 1025, therefore weighting cylinder number 9 moreheavily. Columns 2 through 5 represent the successive modifications ofthe cylinder number array resulting from repeated errors on cylindernumber 9. It should be appreciated that any number of iterations may beused, and that any modified condition may be saved for use as asubsequent initial condition. However, in the instant example, up tofive entries per cylinder are added. On the sixth error, all of thevariables with that cylinder value are removed, as shown in column 6,thus illustrating the possibility of further modifying the test toincrease the probability of selecting the other cylinders. The testresults may be communicated to an operator or saved to a memory devicethrough the first interface 18.

In the example illustrated in FIG. 2, before any errors occur eachcylinder has an equal likelihood of selection. As errors occur, thecylinder number is copied and appended to the list. FIG. 3 graphicallyshows the increased likelihood of selecting the targeted error cylinderafter each iteration. The procedure associated with the cylinder numberexample may be applied to any array of commands, command variables, orother test parameters.

A dynamically adaptive test may also be combined with a conventionalscripted test. In such an embodiment, testing may consist of two phases.The one phase consists of a dynamic adaptive test which tests knownareas of weakness associated with a device. This phase tests a range ofcommands and variables but may be weighted toward detecting knownweakness in a device type. The test is adapted in response to errors tofocus on problems. Testing for each unit of a device type may start withthe same weighting but each test progresses into a unique weighting aserrors are detected. One object of this type of test is to identifydevice faults while devices are still operating within theirspecifications.

The other phase measures the error rate of a predetermined fixed set oftest parameters. This testing is not dynamically modified and may beused as a reference to measure the ongoing quality of a series ofdevices.

Dynamically adaptative tests can provide improvements in testingefficiency, particularly in view of increases in storage devicecapacities and testing requirements. Dynamic adaptation in response toerrors allows the test to focus on potential faults in the device. Inaddition, storage devices generally have failure modes. While anadaptive test may not be able to fix the problem, it can identify andtest to the failing mode.

Another embodiment of the invention employs a random number generator inthe testing device 14 to randomly select test parameters to providegreater variability in testing and reduce the effect of biases or errorswhich may be built into the test structure. The random number generatoris actually "pseudo random" in that the number sequence it producesappears to be random but is actually a predetermined sequence which isrelated to a seed number. For every unique seed number, a correspondingunique random sequence is generated. Therefore, the sequence of therandom number generator can be repeated by using the same seed numberand varied by use of different seed numbers. This form of random numbersequencing provides comprehensive coverage of test conditions whilestill preserving the test's repeatability. A truly random numbergenerator could also be used, but the ability to repeat a specific testmight be impaired.

Randomized selection of test parameters using a random number generatorpermits comprehensive test coverage of commands, command variables andoperating conditions within the test environment of a particular device.Randomized selection minimizes the effect of logic errors, omissions andredundancies often found in scripted tests by defining the testenvironment rather than individual scripts. Each test is unique yetrepeatable by controlling the seed number used. The test conditions areessentially random but may still be controlled by the probabilityestablished by rules.

Randomized selection is also useful in testing changed or modifieddevices. Some of the changes which may effect the testing conditions arechanges in encoding, data transfer, seeking, and data zones. Changes canoccur across the entire range of device design including mechanics,electronics and firmware. It has been found that an effective test foridentifying design weaknesses should be flexible enough to respond toerror conditions as they occur. Use of different random sequencesmaximizes test coverage while minimizing errors and biases which mayoccur in traditional scripted tests.

In one embodiment using randomized selection, a set of rules governingthe test environment is used in conjunction with number sequencesproduced by a random number generator to select the test parameterswhich are used. The sequence of the test is varied for each differentseed number which is used, thus providing more coverage than traditionalscripted tests where the sequence is fixed. In cases where multipledevices are being tested, variation in total test coverage may beincreased by using a unique number associated with each device, such asthe serial number of the device, as the seed number for the test of thatdevice.

The initial rules for the test environment may be established in severalways, such as by weighting arrays of test parameters, by establishingranges for test parameters, or by program logic. The weighting of anarray may be determined by the number of copies of the parameter whichare stored in the array. Each location in the array typically has anequal chance of being selected. For example, in the case of an array ofcommands, the array may be loaded with multiple copies of a commandbased on the percentage of its desired execution. The array mightcontain 20% read commands, 15% write commands, 5% format commands, andthe remaining 60% distributed among other commands, corresponding to thedesired probability of selection of each command.

An example of initial rules for a test environment for testing a diskdrive follows. For clarity, the test environment is limited to data readand write commands and the weighting is merely exemplary. Data read andwrite commands comprise three elements:

1. The Command (Read or Write)

2. The Location (LBA)

3. The Data Transfer Size (Blocks)

The rules for commands, established by weighting an array of commands,are:

    ______________________________________                                        Read Sectors      35%                                                         Write Sectors     15%                                                         Read Multiple Sectors                                                                           15%                                                         Write Multiple Sectors                                                                          10%                                                         Read Verify       15%                                                         Write Verify      10%                                                         ______________________________________                                    

The rules for LBA sequencing, similarly established by weighting anarray, are:

    ______________________________________                                        Random LBA        35%                                                         Sequential Forward                                                                              20%                                                         Sequential Reverse                                                                               5%                                                         Same LBA          20%                                                         Previous LBA      20%                                                         ______________________________________                                    

The rule for Blocks is any random value between 1 and 256.

In the case of this test environment, the percentages associated withthe test parameters reflects the probability that the test parameterwill be selected if a random selection is made from the array. In thecase of the range specified for Blocks, the weighting is even.

After the rules for the test environment have been established, theportion of the test relating to the defined test environment may beinitiated. A seed number is supplied to the random number generator inthe test device 14. A seed number may be supplied to the random numbergenerator as input information through the user interface 18, and may beinput by an operator or obtained from another source, such as a testdatabase or from the storage device being tested. The use of a serialnumber or other unique number associated with the particular storagedevice being tested has been found to be an effective way to establish aunique test sequence for each device.

After receiving the seed number, the random number generator in the testdevice 14 begins to generate a unique sequence of numbers which isassociated with the particular seed number. Numbers from the generatedsequence are then used to select test parameters from the array of testparameters in the memory 12. Use of a number or numbers from thegenerated sequence to select a parameter in the array may beaccomplished in many ways. In the case of a one dimensional array, orlist, each address in the array may be identified by a number, and theparameter located at that address will be selected every time thatnumber is generated by the random number generator. Similarly, twoconsecutive numbers from the generated sequence may be used to specifythe address of a parameter in a two-dimensional array. While many othermeans of selecting a parameter using numbers from the generated sequencemay be used, it is beneficial to avoid the use of methods which restrictthe essentially random nature of the selection.

After a parameter or group of related parameters have been selected,they are communicated to the storage device under test via the secondinterface 16. If an error occurs, information relating to the error issent from the storage device to the testing device 14 by the secondinterface 16. The error information may be logged or stored by thedigital computer 10, and may also be output through first interface 18to an operator or to another system or device.

One of the benefits of using randomized selection in a test is that itis unpredictable, and therefore has the potential to identify problemswhich might not otherwise be contemplated by a test designer. However,in some cases, certain parameters or groups of parameters may not beused in a test unless certain preexisting conditions are established. Ina traditional scripted test, if the test designer has knowledge of therequired parameter sequence, the fixed sequence of the test can beestablished to avoid problems. In the case of randomized selection,where the sequence is not fixed, logic may have to be built into thetest to avoid situations where the selected parameters may not beexecuted in the sequence that would otherwise be attempted as a resultof the random selection. The test must therefore have logic to "backcheck" the executed commands to determine if other valid test conditionswere created.

For example, the Read sectors and Read Multiple sectors commandsgenerally allow for an opportunity to compare data. If a Read sectorscommand was executed at the "Same LBA" as a Write, sectors command acomparison may be performed. There is a similar situation if the readlocation matches the "Previous LBA". Logic may be included in the testto check the previous commands and LBA's to determine if permissibleconditions for a compare exist. The values are checked to determine if acompare can be performed. The command is executed and checked forerrors. If valid data compare conditions exist the data is compared.

In another embodiment, dynamic adaptation may be combined withrandomized selection in a test. The dynamic adaptation permits the testto focus on problem areas, while the randomized selection permitsbroader coverage of the test for potential errors. An example involvinga device having ten cylinders is shown in FIG. 4. The initial rules forthe test environment are established by weighting an array of cylindernumbers in the memory 12. Initially, as shown in column 1 of FIG. 4,each cylinder is associated with a group of numbers, which establishesthe initial weighting for that cylinder. This weighting is theequivalent of a one dimensional array where the test parameter forcylinder number 1 is stored in array locations 1 through 10, cylindernumber 2 is stored in locations 11 through 20, and similarly for theremaining cylinder numbers. In the example shown in column 1, eachcylinder has ten numbers associated with it, initially establishing anequal probability of selection, or even weighting. Although in thisexample the initial condition shows a single type of test parameter andthe parameters are initially evenly weighted, multiple types ofparameters could be used and the initial weighting could be establishedin any manner.

After the initial test environment has been established, a seed numberis supplied to the random number generator in the testing device 14.After receiving the seed number, the random number generator in the testdevice 14 begins to generate a unique sequence of numbers which isassociated with the particular seed number. In this example, the randomnumber generator is limited to producing numbers from 1 to 100. Numbersfrom the generated sequence are then used to select test parameters fromthe array of test parameters in the memory 12. Each number thereforecorresponds to a specific test parameter. For example, if the randomnumber generator generates the number 45, cylinder number 5 is selected.

After a parameter is selected, it is communicated to the secondinterface 16 and then sent to the storage device being tested. If anerror occurs, information relating to the error is sent from the storagedevice under test to the testing device 14 via the second interface 16.The information received from the device is then used to modify theweighting of the test parameters. The error information may also belogged or stored or output through first interface 18 to an operator orto another system.

During the initial operation of the test, the probabilities of accessingany cylinder are equal. When an error occurs, the weighting is modifiedto change the probabilities of subsequent selection. Column 2 of FIG. 4illustrates a change in weighting resulting from an error on cylindernumber 8. In response to the error information received through secondinterface 16, the weighting is modified as shown in column 2 to increasethe probability of selection of cylinder number 8. The weighting ismodified by taking 5% from each of the error free cylinders and addingit to the error cylinder, number 8. Thereafter, until the weighting ismodified again, the generation of numbers from 36 to 90 causes cylindernumber 8 to be selected while all other cylinders have five chances in ahundred of being selected. The modification in the weighting illustratesthe ability of the present invention to focus on an error testcondition. The illustrated means for modifying weighting can be appliedto any test parameter, and used with other ranges of random numbers orpercentages or other variables.

In yet another embodiment of the invention, information relating to thetest conditions is written to the storage device being tested during thetest. This reference information may provide useful information fordiagnosis of causes of errors. The use of reference information improvesthe speed and effectiveness of failure analysis by including theinformation in the data written to the storage device during testing.While the reference information may include test parameters and may alsoinclude other information, some of the information which has been foundto be useful includes the identity of the test or test segment; the seednumber for tests involving random number generators; the command andcommand variables; the time or a command counter; the commandenvironment; and voltage, temperature and humidity conditions. Ifreference information is stored in the storage device during testing,the information relating to an error condition is available at the timethe cause of the error is diagnosed. The availability of this referenceinformation frequently eliminates the need for extensive retest andreduces time on logic analyzers and emulators. An engineer with accessto the relevant reference data may more easily identify and correct theproblem. The reference information may be received through secondinterface 16 and output to an operator or to another system through theuser interface 18.

The present invention permits the incorporation of various tests typesin a single test. A given test might include conventional scriptedtests, dynamically adaptive tests, randomized tests or randomizeddynamic adaptive tests. The invention may be used to test a singledevice or a series of devices.

The foregoing discussion has been presented for purposes of illustrationand description. Further, the description is not intended to limit theinvention to the form disclosed herein. Variation and modificationcommensurate with the above teachings, within the skill and knowledge ofthe relevant art, are within the scope of the present invention. Theembodiments described hereinabove are further intended to explain thebest modes presently known of practicing the invention and to enableothers skilled in the art to utilize the invention as presented, or inother embodiments, and with the various modifications required by theirparticular applications or uses of the invention. It is intended thatthe appended claims be construed to include alternative embodiments tothe extent permitted by the prior art.

What is claimed is:
 1. An apparatus for testing an electro-mechanicaldigital storage device, comprising:a digital computer; first interfacemeans, located within said digital computer, for transferringinformation relating to a test of the electro-mechanical digital storagedevice with an operator or another device; an array of test parametersfor the electro-mechanical digital storage device located within saiddigital computer; second interface means, located within said digitalcomputer, for transferring information relating to said test parameterswith the electro-mechanical digital storage device; and testing means,for selecting a test parameter, for providing the selected testparameter to the electro-mechanical digital storage device via thesecond interface means, for receiving information relating to an errorevent from the electro-mechanical digital storage device via the secondinterface means, and for modifying said array of test parameters inresponse to the information relating to an error event to change theprobability that a specific test parameter will be selected.
 2. Anapparatus, as claimed in claim 1, wherein:said test parameters comprisecommands and command variables.
 3. An apparatus, as claimed in claim 1,wherein:said test parameters comprise commands, command variables, andtest conditions.
 4. An apparatus, as claimed in claim 1, wherein:saidtesting means comprises a random number generator for use in selecting atest parameter.
 5. An apparatus, as claimed in claim 1, wherein:saidtesting means comprises a random number generator for selecting a testparameter, wherein said random number generator is responsive to a seednumber.
 6. An apparatus, as claimed in claim 1, wherein:said testingmeans uses a seed number to select a test parameter; and said firstinterface means comprises means for receiving said seed number.
 7. Anapparatus, as claimed in claim 1, wherein:said testing means comprises arandom number generator for use in selecting a test parameter, whereinsaid random number generator is responsive to a seed number; and saidfirst interface means comprises means for receiving said seed number. 8.An apparatus, as claimed in claim 1, wherein:said testing meanscomprises means for weighting said array of test parameters in responseto the information relating to an error event to increase theprobability that said specific test parameter will be selected.
 9. Anapparatus, as claimed in claim 1, wherein:said testing means comprisesmeans for weighting said array of test parameters in response to theinformation relating to an error event to decrease the probability thatsaid specific test parameter will be selected.
 10. An apparatus, asclaimed in claim 1, wherein:said testing means comprises means forweighting said array of test parameters in response to the informationrelating to an error event to change the probability that a specifictype of test parameter that includes said specific test parameter willbe selected.
 11. An apparatus, as claimed in claim 1, wherein:saidtesting means comprises means for weighting said array of testparameters in response to the information relating to an error event toincrease the probability that a specific type of test parameter thatincludes said specific test parameter will be selected.
 12. Anapparatus, as claimed in claim 1, wherein:said testing means comprisesmeans for weighting said array of test parameters in response to theinformation relating to an error event to decrease the probability thata specific type of test parameter that includes said specific testparameter will be selected.
 13. An apparatus, as claimed in claim 1,wherein:said testing means comprises means for weighting said array inresponse to an error event by adding a test parameter associated withsaid error event to said weighted array.
 14. An apparatus, as claimed inclaim 1, wherein:said testing means comprises means for weighting saidarray in response to an error event by changing the weight of each typeof test parameter represented in said weighted array.
 15. An apparatus,as claimed in claim 1, further comprising:a plurality of arrays of testparameters located within said digital computer.
 16. An apparatus, asclaimed in claim 1, further comprising:a plurality of arrays of testparameters located within said digital computer; and said testing meanscomprises means for selecting at least one of said arrays.
 17. Anapparatus, as claimed in claim 1, further comprising:a fixed set of testparameters located within said digital computer.
 18. An apparatus fortesting an electro-mechanical digital storage device, comprising:adigital computer; first interface means, located within said digitalcomputer, for receiving a seed number; a plurality of test parametersfor the electro-mechanical digital storage device located within saiddigital computer; testing means, located within said digital computer,for using said seed number to select one of said plurality of testparameters, wherein said testing means includes a number generatorcapable of repetitively producing a pseudo-random series of numbers inresponse to the receipt of said seed number, wherein a number in saidpseudo-random series of numbers is used to select a test parameter; andsecond interface means, located within said digital computer, fortransferring information relating to said selected test parameter withsaid electro-magnetic digital storage device.
 19. An apparatus, asclaimed in claim 18, wherein:said seed number is associated with theidentity of the device being tested.
 20. An apparatus, as claimed inclaim 18, wherein:said test parameters comprise commands and commandvariables.
 21. An apparatus, as claimed in claim 18, wherein:said testparameters comprise commands, command variables, and test conditions.22. An apparatus, as claimed in claim 18, wherein:said testing meanscomprises means for selecting a sequence of said test parameters.
 23. Anapparatus, as claimed in claim 18, wherein:said testing means comprisesmeans for selecting a sequence of said test parameters and means fordetermining if said sequence of test parameters is a permissiblecondition for the electro-mechanical digital storage device.
 24. Anapparatus, as claimed in claim 18, wherein:said first interface meanscomprises means for receiving information relating to said testparameters.
 25. An apparatus, as claimed in claim 18, wherein:saidsecond interface means comprises means for receiving informationrelating to an error event in the electro-mechanical digital storagedevice during the testing thereof.
 26. An apparatus, as claimed in claim18, wherein:said first interface means comprises means for outputtinginformation relating to the testing of the electro-mechanical digitalstorage device.
 27. An apparatus, as claimed in claim 18, wherein:saidplurality of test parameters includes a plurality of arrays of testparameters located within said digital computer.
 28. An apparatus, asclaimed in claim 18, wherein:said plurality of test parameters includesa plurality of arrays of test parameters located within said digitalcomputer; and said testing means further comprises means for selectingat least one of said arrays for use in testing the electro-mechanicaldigital storage device.
 29. An apparatus, as claimed in claim 18,wherein:said plurality of test parameters comprises an array of testparameters; and said testing means comprises means for weighting saidarray in response to an error event in the electro-mechanical digitalstorage device.
 30. An apparatus, as claimed in claim 18, wherein:saidplurality of test parameters comprises a weighted array of testparameters.
 31. An apparatus, as claimed in claim 18, wherein:saidplurality of test parameters comprises an array of test parameters; andsaid testing means comprises means for weighting said array in responseto an error event to change the probability that a specific testparameter will be selected.
 32. An apparatus, as claimed in claim 18,wherein:said plurality of test parameters comprises an array of testparameters; and said testing means comprises means for weighting saidarray in response to an error event to change the probability that aspecific type of test parameter will be selected.
 33. An apparatus, asclaimed in claim 18, wherein:said plurality of test parameters comprisesa weighted array of test parameters; and said testing means comprisesmeans for modifying said weighted array in response to an error event.34. An apparatus, as claimed in claim 18, wherein:said plurality of testparameters comprises a weighted array of test parameters; and saidtesting means comprises means for modifying said weighted array inresponse to an error event by changing the weight of each type of eachtest parameter represented in said weighted array.